home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of Video
/
World of Video.iso
/
gfxprograms
/
3dprograms
/
rayshade-4.0
/
rayfiles
/
rsdefs
/
objects
/
clean.rh.lists
< prev
next >
Wrap
Text File
|
1995-02-13
|
8KB
|
269 lines
/************************************************************************
*
* clean.rh
*
* This is an #include file for the Rayshade Standard Header
* Files. It defines the "clean" superprimitives in the package.
*
* Please do not edit this file, or any of the other files in
* this package! Make additions to these in your own separate
* file. If you think you have something that should be added
* permanently, please send it to Larry Coffin and/or David
* DeBry (email addresses listed below). If we include it in
* the next release, we'll put your name in the contributor's
* list.
*
* Contributors (in alphabetical order):
* Larry Coffin <lcoffin@clciris.chem.umr.edu>
* Craig Kolb <cek@Princeton.EDU>
* David DeBry <ddebry@dsd.es.com>
* Stuart Warmink <sw@groucho.att.com>
*/
#ifndef RSHF_CLEAN
#define RSHF_CLEAN
#include "rounded.rh"
#define RSPtoothbrush(prefix, surf) \
RSProundedbox(name RSPtb_handle_tmp, -5.5, -.5, -.4, 5.5, .5, .4, .2) \
\
name RSPtb_handle object RSPtb_handle_tmp \
translate -5.5 0 0 \
\
name RSPtb_basic_cone \
list \
disc (.4/ cos(dtor*13)) 0 0 0 -1 0 0 \
cone (.4/ cos(dtor*13)) 0 0 0 \
(.25/ cos(dtor*13)) 5 0 0 \
disc (.25/ cos(dtor*13)) 5 0 0 1 0 0 \
end \
\
name RSPtb_extension object RSPtb_basic_cone \
scale 1 1.25 1 \
rotate 0 1 0 13 \
translate (-0.2 - (0.4*tan(dtor*13))) 0 0 \
\
name RSPtb_basic_cylinder \
list \
disc 1 1 0 0 1 0 0 \
cylinder 1 1 0 0 -1 0 0 \
disc 1 -1 0 0 -1 0 0 \
end \
\
name RSPtb_head_end \
union \
torus 0.6 0.25 0 0 0 0 0 1 \
object RSPtb_basic_cylinder \
scale 0.25 0.6 0.6 \
rotate 0 0 1 90 \
rotate 1 0 0 90 \
end \
\
name RSPtb_head_middle \
union \
box 1.0 0.6 0.25 -1.0 -0.6 -0.25 \
list \
object RSPtb_basic_cylinder \
scale 1.0 0.25 0.25 \
translate 0 0.6 0 \
object RSPtb_basic_cylinder \
scale 1.0 0.25 0.25 \
translate 0 -0.6 0 \
end \
end \
\
name RSPtb_head_body \
union \
object RSPtb_head_middle \
list \
object RSPtb_head_end \
translate 1.0 0 0 \
object RSPtb_head_end \
translate -1.0 0 0 \
end \
end \
\
name RSPtb_bristle \
object RSSbristle_white() RSPtb_basic_cylinder \
scale 0.7 0.13 0.13 \
rotate 0 1 0 90 \
translate 0 0 0.7 \
texture bump 1 scale .01 .01 10 \
\
name RSPtb_bristle_set \
list \
object RSPtb_bristle translate 0.2 -0.5 0 \
object RSPtb_bristle translate 0.2 0.5 0 \
object RSPtb_bristle translate 0.2 0.0 0 \
object RSPtb_bristle translate 0.4 -0.25 0 \
object RSPtb_bristle translate 0.4 0.25 0 \
end \
\
name RSPtb_bristles \
list \
object RSPtb_bristle_set \
object RSPtb_bristle_set translate 0.4 0 0 \
object RSPtb_bristle_set translate 0.8 0 0 \
object RSPtb_bristle translate 1.4 0 0 \
object RSPtb_bristle_set translate -0.4 0 0 \
object RSPtb_bristle_set translate -0.8 0 0 \
object RSPtb_bristle_set translate -1.2 0 0 \
object RSPtb_bristle translate -1.2 -0.25 0 \
object RSPtb_bristle translate -1.2 0.25 0 \
end \
\
name RSPtb_head \
list \
difference \
object RSPtb_head_body \
object RSPtb_bristles \
scale 1.001 1.001 1.001 \
end \
object RSPtb_bristles \
end \
\
name RSPtb_brush \
union \
object RSPtb_handle \
union \
object RSPtb_extension \
object RSPtb_head \
translate \
(-0.2 - (0.4*tan(dtor*13)) + (5*cos(dtor*13)) + 1.0 -(0.2*tan(dtor*13))) \
0 (-5*sin(dtor*13)) \
end \
end \
\
prefix object surf RSPtb_brush
#define RSPsoapbar(prefix, surf) \
RSProundedbox(name RSPsoap_tmp, -2, -1.25, -1.25, 2, 1.25, 1.25, 0.8)/* 0.7 -> 0.8 */\
scale 2 2 1 \
RSTlightgray_marb(6,1,1) \
translate 0 0 -0.1 \
prefix object surf RSPsoap_tmp
#define RSPsoap_dish(prefix, surf) \
name RSPsd_ridge \
list \
disc 0.5 0 4.5 0 0 1 0 \
cylinder 0.5 0 4.5 0 0 -4.5 0 \
disc 0.5 0 -4.5 0 0 -1 0 \
end \
name RSPsd_holder union \
union \
difference \
RSProundedbox(, -7, -4.5, -1, 7, 4.5, 1, 0.5) \
RSProundedbox(, -6, -3.5, -2, 6, 3.5, 2, 0.9) \
translate 0 0 2.25 \
end \
list \
object RSPsd_ridge translate 4 0 0.0 \
object RSPsd_ridge translate 2 0 0.0 \
object RSPsd_ridge translate 0 0 0.0 \
object RSPsd_ridge translate -2 0 0.0 \
object RSPsd_ridge translate -4 0 0.0 \
end \
end \
box 5 0 -0.75 -5 0.5 0.75 \
translate 0 -4.5 0 \
end \
prefix object surf RSPsd_holder
#define RSPsoap_and_dish(prefix, s_surf, d_surf) \
prefix list \
RSPsoap_dish(, d_surf) \
RSPsoapbar(, s_surf) \
rotate 0 0 1 -5 \
translate -0.3 -0.2 (0.5 + 1.25) \
end
#define RSPglass(prefix, surf) \
name RSPglass_tmp union \
torus 0.95 0.06 0 0 2 0 0 1 \
difference \
list /* outer glass */ \
cone 0.9 0 0 -0.001 1.0 0 0 2 \
disc 1 0 0 2 0 0 1 \
disc 0.9 0 0 -.001 0 0 -1 \
end \
list /* inner glass */ \
cone 0.7 0 0 0.1 0.9 0 0 2.2 \
disc .9 0 0 2.2 0 0 1 \
disc .7 0 0 0.1 0 0 -1 \
end \
end \
end \
texture bump 0.2 scale .2 .2 .2 \
prefix object surf RSPglass_tmp
#define RSPglass_holder(prefix, surf) \
name RSPgh_unit_cyl \
list \
disc 1 0 0 1 0 0 1 \
cylinder 1 0 0 0 0 0 1 \
disc 1 0 0 0 0 0 -1 \
end \
\
name RSPgh_indent_big \
union \
object RSPgh_unit_cyl \
scale 3.5 3.5 0.5 \
translate 0 0 0.3 \
union \
object RSPgh_unit_cyl \
scale 3.2 3.2 0.4 \
union \
torus 3.2 0.3 0 0 0.3 0 0 1 \
difference \
object RSPgh_unit_cyl \
scale 3.8 3.8 0.4 \
translate 0 0 0.7 \
torus 3.8 0.3 0 0 0.7 0 0 1 \
end \
end \
end \
end \
\
name RSPgl_indent_small \
union \
object RSPgh_unit_cyl \
scale 0.6 0.6 3 \
translate 0 0 -2.9 \
difference \
object RSPgh_unit_cyl \
scale 0.9 0.9 0.4 \
torus 0.9 0.3 0 0 0 0 0 1 \
end \
end \
translate 0 0 -0.3 \
\
name RSPgh_holes \
list \
object RSPgh_indent_big \
object RSPgl_indent_small \
translate -5.5 -2.8 1 \
object RSPgl_indent_small \
translate 5.5 -2.8 1 \
object RSPgl_indent_small \
translate -5.5 2.8 1 \
object RSPgl_indent_small \
translate 5.5 2.8 1 \
end \
\
name RSPgh_holder \
union \
difference \
RSProundedbox(, -7, -4.5, -1, 7, 4.5, 1, 0.5) \
object RSPgh_holes \
end \
box 5 0 -0.75 -5 0.5 0.75 \
translate 0 -4.5 0 \
end \
\
prefix object surf RSPgh_holder
#endif /* ifndef RSHF_CLEAN */